import { http } from "@/utils/http";

export type GetCodeResult = {
  success: boolean;
  data: Blob;
};

// export type GetTokenResult = {
//   success: boolean;
//   data: {
//     access_token: string;
//     expires_in: number;
//     refresh_token: string;
//     scope: string;
//     token_type: string;
//   };
//   code:Number,
//   msg:string
// };
export type GetTokenResult = {
  access_token: string;
  expires_in: number;
  refresh_token: string;
  scope: string;
  token_type: string;
};

// export type GetUserinfoResult = {
//   success: boolean;
//   data: {
//     /** 头像 */
//     user?: object;
//     // /** 用户名 */
//     // username?: string;
//     // /** 昵称 */
//     // nickname?: string;
//     // /** 当前登录用户的角色 */
//     // roles?: Array<string>;
//     /** 当前登录用户的按钮级别权限 */
//     permissions?: Array<string>;
//   };
//   code:Number,
//     msg:string
// };
export type GetUserinfoResult = {
  resp_code: number
    /** 用户信息 */
    user?: object;
    /**权限*/
    permissions?: Array<string>;
};

// // 定义 DataItem
// type DataItem = {
//   createTime: string,
//   css: string,
//   hidden: boolean,
//   id: string,
//   isMenu:number,
//   menuIds: any,
//   name: string,
//   parentId: number,
//   path:string,
//   roleId: any,
//   sort: number,
//   updateTime: string,
//   url: string,
//   children:any
//   // 可以根据实际情况添加更多属性
// };
//定义childrenItem
// type childrenItem={
//   children: any
//   createTime: string
//   css : string
//   hidden: Boolean
//   id:string
//   isMenu: number
//   menuIds : any
//   name: string
//   parentId: number
//   path:string
//   roleId: any
//   sort: number
//   updateTime: string
//   url: string
// }

// // 定义 data 数组的类型
// type DataList = DataItem[];
// export type GetMenusResult={
//   success: boolean;
//     data:DataList
//     code:Number,
//     msg:string
// }
export type GetMenusResult=[]
/** 获取验证码 */
export const getCode = (data?: string) => {
  return http.request<GetCodeResult>("get", "/api-auth/validata/code/" + data, {
    responseType: "blob"
  });
};

/** 获取Token */
export const getToken = (data?: object) => {
  return http.request<GetTokenResult>(
    "post",
    "/api-auth/oauth/token?username=" +
      data.username +
      "&password=" +
      data.password +
      "&deviceId=" +
      data.deviceId +
      "&validCode=" +
      data.validCode +
      "&grant_type=password&scope=app&client_id=jeecp&client_secret=webApp",
    { data }
  );
};

/** 获取用户信息和权限 */
export const getUserinfo = (data?: object) => {
  return http.request<GetUserinfoResult>("get", "/api-auth/oauth/userinfo", data);
};
/** 获取菜单目录 */


export const getMenus = () => {
  return http.request<GetMenusResult>("get", "/api-user/menus/current", );
};
